//package com.kitbox.hl.meshow.bpm.service.impl;
//
//import com.alibaba.fastjson.JSONObject;
//
//import com.kitbox.hl.meshow.bpm.service.ILocalBpmService;
//import org.apache.commons.lang3.StringUtils;
//import org.springframework.stereotype.Service;
//
//import java.util.Map;
//
//@Service
//public class LocalBpmServiceImpl implements ILocalBpmService {
//
//    private static Map<String,String> env=null;
//
//    static{
//        //初始化配置文件信息
//        env = Property.getPropertiesMap();
//    }
//       /* Map<String,String> map =new HashMap<>();
//        map.put("nodeId",nodeId);
//        map.put("OrgId",OrgId);
//        map.put("InstId",InstId);
//        map.put("defId",defKey);*/
//
//    /**
//     *
//     * @param defKey
//     * @param instId
//     * @param isAgree
//     * @param nodeName
//     * @return
//     * @throws Exception
//     */
//       @Override
//       public String getUserByNodeIdOrgIdInstIdDefKey(String defKey, String instId, String isAgree,String nodeName) throws Exception {
//           JSONObject params=new JSONObject();
//           params.put("defKey",defKey);
//           params.put("instId",instId);
//           params.put("isAgree",isAgree);
//           params.put("nodeName",nodeName);
//           String flowUrl=env.get("local.bpm.getNodeUser.url");
//           //System.out.println("发起流程Url=\""+flowUrl);
//           String userJson= Sent.post(flowUrl, Encrypt.paramEncrypt(params.toString()));
//           System.out.println("流程users=\""+userJson);
//           return userJson;
//       }
//
//
//    @Override
//    public String createProcessInstance(String userID, String processDefName, String processInstName) throws Exception {
//       // String params="{\"nextUserIds\":\""+userID+"\",\"actKey\":\""+processDefName+"\",\"actName\":\""+processInstName+"\",\"nodeType\":\"2\"}";
//        JSONObject params=new JSONObject();
//        params.put("nextUserIds",userID);
//        params.put("actKey",processDefName);
//        params.put("actName",processInstName);
//        params.put("nodeType","2");
//        String flowUrl=env.get("local.bpm.send.url");
//        //System.out.println("发起流程Url=\""+flowUrl);
//        String instanceId= Sent.post(flowUrl, Encrypt.paramEncrypt(params.toString()));
//        System.out.println("流程实例ID=\""+instanceId);
//        return instanceId;
//    }
//
//    @Override
//    public String finishWorkItemWithOption(String userID, String instanceId, String varName, String varValue) throws Exception {
//        //String params="{\"nextUserIds\":\""+userID+"\",\"instanceId\":\""+instanceId+"\",\"varName\":\""+varName+"\",\"varValue\":\""+varValue+"\"}";
//        if(StringUtils.isBlank(varValue)) {
//            varName="";
//        }
//        JSONObject params=new JSONObject();
//        params.put("nextUserIds",userID);
//        params.put("instanceId",instanceId);
//        params.put("varName",varName);
//        params.put("varValue",varValue);
//        params.put("nodeType","2");
//        String flowUrl=env.get("local.bpm.doActTask.url");
//        // System.out.println("处理流程Url=\""+flowUrl);
//        String isSuccess= Sent.post(flowUrl, Encrypt.paramEncrypt(params.toString()));
//        System.out.println("处理流程=\""+isSuccess);
//        return isSuccess;
//    }
//
//    @Override
//    public BPMLoclaTaskInfo getProcessTaskByInstanceId(String instanceId) throws Exception {
//
//        //String params="{\"instanceId\":\""+instanceId+"\"}";
//        JSONObject params=new JSONObject();
//        params.put("instanceId",instanceId);
//        String flowUrl=env.get("local.bpm.getProcessTaskByInstanceId.url");
//        // System.out.println("挂起流程Url=\""+flowUrl);
//        String taskJson= Sent.post(flowUrl, Encrypt.paramEncrypt(params.toString()));
//        BPMLoclaTaskInfo taskIfo=new BPMLoclaTaskInfo();
//        if(!"-1".equals(taskJson)){
//            taskIfo = JSONObject.parseObject(taskJson, BPMLoclaTaskInfo.class);
//            taskIfo.setStatus("1");
//            System.out.println("任务ID=\""+taskIfo.getTaskId());
//            System.out.println("节点ID=\""+taskIfo.getNodeId());
//            System.out.println("流程定义ID=\""+taskIfo.getProcessDefinitionId());
//        }else{
//            taskIfo.setStatus("-1");
//        }
//        return taskIfo;
//    }
//
//    @Override
//    public String getHisTaskIdByInstanceId(String instanceId) throws Exception {
//       // String params="{\"instanceId\":\""+instanceId+"\"}";
//        JSONObject params=new JSONObject();
//        params.put("instanceId",instanceId);
//        String flowUrl=env.get("local.bpm.getHisTaskIdByInstanceId.url");
//        // System.out.println("挂起流程Url=\""+flowUrl);
//        String taskId= Sent.post(flowUrl, Encrypt.paramEncrypt(params.toString()));
//        System.out.println("前驱完成的任务ID=\""+taskId);
//        return taskId;
//    }
//
//    @Override
//    public BPMLoclaTaskInfo getHisTaskByInstanceId(String instanceId) throws Exception {
//        JSONObject params=new JSONObject();
//        params.put("instanceId",instanceId);
//        String flowUrl=env.get("local.bpm.getHisTaskByInstanceId.url");
//        // System.out.println("挂起流程Url=\""+flowUrl);
//        String taskJson= Sent.post(flowUrl, Encrypt.paramEncrypt(params.toString()));
//        BPMLoclaTaskInfo taskIfo=null;
//        if(!"-1".equals(taskJson)){
//            taskIfo = JSONObject.parseObject(taskJson, BPMLoclaTaskInfo.class);
//            System.out.println("任务ID=\""+taskIfo.getTaskId());
//            System.out.println("节点ID=\""+taskIfo.getNodeId());
//            System.out.println("流程定义ID=\""+taskIfo.getProcessDefinitionId());
//        }
//        return taskIfo;
//    }
//
//    @Override
//    public String getHisTaskAssigneeByInstanceId(String instanceId) throws Exception {
//        JSONObject params=new JSONObject();
//        params.put("instanceId",instanceId);
//        String flowUrl=env.get("local.bpm.getHisTaskAssigneeByInstanceId.url");
//        // System.out.println("挂起流程Url=\""+flowUrl);
//        String userId= Sent.post(flowUrl, Encrypt.paramEncrypt(params.toString()));
//        System.out.println("前驱完成任务处理人Id=\""+userId);
//        return userId;
//    }
//
//    @Override
//    public String getNodeUserByNodeId(String nodeId) throws Exception {
//        //String params="{\"nodeId\":\""+nodeId+"\"}";
//        JSONObject params=new JSONObject();
//        params.put("nodeId",nodeId);
//        String flowUrl=env.get("local.bpm.getNodeUserByNodeId.url");
//        // System.out.println("挂起流程Url=\""+flowUrl);
//        String userIds= Sent.post(flowUrl, Encrypt.paramEncrypt(params.toString()));
//        System.out.println("节点的处理人=\""+userIds);
//        return userIds;
//    }
//
//    @Override
//    public String getNextNodeUserByNodeId(String nodeId, String processDefinitionId,String varName,String varValue) throws Exception {
//        //String params="{\"nodeId\":\""+nodeId+"\",\"processDefinitionId\":\""+processDefinitionId+"\",\"varName\":\""+varName+"\",\"varValue\":\""+varValue+"\"}";
//        if(StringUtils.isBlank(varValue)) {
//            varName="";
//        }
//        JSONObject params=new JSONObject();
//        params.put("nodeId",nodeId);
//        params.put("processDefinitionId",processDefinitionId);
//        params.put("varName",varName);
//        params.put("varValue",varValue);
//        String flowUrl=env.get("local.bpm.getNextNodeUserByNodeId.url");
//        // System.out.println("挂起流程Url=\""+flowUrl);
//        String userIds= Sent.post(flowUrl, Encrypt.paramEncrypt(params.toString()));
//        System.out.println("下个节点的处理人=\""+userIds);
//        return userIds;
//    }
//
//    @Override
//    public String suspendFlow(String instanceId) throws Exception {
//        String params="{\"instanceId\":\""+instanceId+"\"}";
//        String flowUrl=env.get("local.bpm.suspendFlow.url");
//        // System.out.println("挂起流程Url=\""+flowUrl);
//        String isSuccess= Sent.post(flowUrl, Encrypt.paramEncrypt(params));
//        System.out.println("挂起流程=\""+isSuccess);
//        return isSuccess;
//    }
//
//    @Override
//    public String deleteFlow(String instanceId) throws Exception {
//        //String params="{\"instanceId\":\""+instanceId+"\"}";
//        JSONObject params=new JSONObject();
//        params.put("instanceId",instanceId);
//        String flowUrl=env.get("local.bpm.deleteFlow.url");
//        //System.out.println("删除流程Url=\""+flowUrl);
//        String isSuccess= Sent.post(flowUrl, Encrypt.paramEncrypt(params.toString()));
//        System.out.println("删除流程=\""+isSuccess);
//        return isSuccess;
//    }
//}
